package com.kexio.common.constants;

/**
 * 通用常量类
 * 
 * 包含系统级别的通用常量定义
 * 
 * @author Kexio Team
 * @since 1.0.0
 */
public final class CommonConstants {
    
    // ==================== 字符串常量 ====================
    
    /** 空字符串 */
    public static final String EMPTY = "";
    
    /** 逗号分隔符 */
    public static final String COMMA = ",";
    
    /** 分号分隔符 */
    public static final String SEMICOLON = ";";
    
    /** 冒号分隔符 */
    public static final String COLON = ":";
    
    /** 竖线分隔符 */
    public static final String PIPE = "|";
    
    /** 下划线 */
    public static final String UNDERSCORE = "_";
    
    /** 横线 */
    public static final String DASH = "-";
    
    /** 点号 */
    public static final String DOT = ".";
    
    /** 斜杠 */
    public static final String SLASH = "/";
    
    /** 反斜杠 */
    public static final String BACKSLASH = "\\";
    
    // ==================== 数字常量 ====================
    
    /** 数字零 */
    public static final int ZERO = 0;
    
    /** 数字一 */
    public static final int ONE = 1;
    
    /** 数字负一 */
    public static final int MINUS_ONE = -1;
    
    // ==================== 状态常量 ====================
    
    /** 启用状态 */
    public static final Integer STATUS_ENABLED = 1;
    
    /** 禁用状态 */
    public static final Integer STATUS_DISABLED = 0;
    
    /** 删除状态 */
    public static final Integer STATUS_DELETED = -1;
    
    // ==================== 布尔常量 ====================
    
    /** 是 */
    public static final String YES = "Y";
    
    /** 否 */
    public static final String NO = "N";
    
    /** 真 */
    public static final String TRUE = "true";
    
    /** 假 */
    public static final String FALSE = "false";
    
    // ==================== 系统常量 ====================
    
    /** 系统管理员ID */
    public static final String SYSTEM_USER_ID = "system";
    
    /** 超级管理员角色编码 */
    public static final String SUPER_ADMIN_ROLE = "super_admin";
    
    /** 默认页码 */
    public static final int DEFAULT_PAGE_NUM = 1;
    
    /** 默认页大小 */
    public static final int DEFAULT_PAGE_SIZE = 10;
    
    /** 最大页大小 */
    public static final int MAX_PAGE_SIZE = 1000;
    
    // ==================== 编码常量 ====================
    
    /** UTF-8编码 */
    public static final String UTF8 = "UTF-8";
    
    /** GBK编码 */
    public static final String GBK = "GBK";
    
    /** ISO-8859-1编码 */
    public static final String ISO_8859_1 = "ISO-8859-1";
    
    // ==================== HTTP相关常量 ====================
    
    /** HTTP GET方法 */
    public static final String HTTP_GET = "GET";
    
    /** HTTP POST方法 */
    public static final String HTTP_POST = "POST";
    
    /** HTTP PUT方法 */
    public static final String HTTP_PUT = "PUT";
    
    /** HTTP DELETE方法 */
    public static final String HTTP_DELETE = "DELETE";
    
    /** Content-Type: JSON */
    public static final String CONTENT_TYPE_JSON = "application/json";
    
    /** Content-Type: Form */
    public static final String CONTENT_TYPE_FORM = "application/x-www-form-urlencoded";
    
    // ==================== 缓存相关常量 ====================
    
    /** 缓存键分隔符 */
    public static final String CACHE_KEY_SEPARATOR = ":";
    
    /** 默认缓存过期时间（秒） */
    public static final long DEFAULT_CACHE_EXPIRE = 3600L;
    
    /** 短期缓存过期时间（秒） */
    public static final long SHORT_CACHE_EXPIRE = 300L;
    
    /** 长期缓存过期时间（秒） */
    public static final long LONG_CACHE_EXPIRE = 86400L;
    
    // ==================== 私有构造函数 ====================
    
    /**
     * 私有构造函数，防止实例化
     */
    private CommonConstants() {
        throw new UnsupportedOperationException("This is a utility class and cannot be instantiated");
    }
}
